home *** CD-ROM | disk | FTP | other *** search
/ START Magazine / START VOL 4 NO 1.st / POGOSRC.ARC / STJOY.ASM < prev    next >
Encoding:
Assembly Source File  |  1985-11-20  |  1021 b   |  59 lines

  1.  
  2.     far    data
  3.  
  4. ISZ    equ    32
  5. ISM    equ ((ISZ-1)*2)
  6.  
  7.  
  8.     public    _findpacket
  9. _findpacket
  10.     movem.l    a0/a1/d0,-(sp)
  11.     move.w    isct,d0        ;get count of events in buffer
  12.     cmp.w    #ISZ,d0        ;if max'd out return early
  13.     beq        zpack
  14.     addq.w    #1,d0        ;inc and store event count
  15.     move.w    d0,isct
  16.     move.l    #is,a1        ;get event buffer
  17.     move.w    iswr,d0        ;and write index
  18.     add.w    d0,a1        ;write place in event buffer
  19.     add.w    #2,d0        ;update read pointer
  20.     and.w    #ISM,d0        
  21.     move.w    d0,iswr
  22.     addq    #1,a0        ;skip over which joystick byte
  23.     move.b    (a0)+,(a1)+    ;copy joy0 to buffer
  24.     move.b    (a0)+,(a1)+    ;copy joy1 to buffer
  25. zpack movem.l    (sp)+,a0/a1/d0
  26.     rts
  27.  
  28.     near data
  29.  
  30.     public _readjoy
  31. _readjoy
  32.     move.w    isct,d0
  33.     beq    zread
  34.     subq.w    #1,isct
  35.     move.l    #is,a0
  36.     move.w    isrd,d0
  37.     add.w    d0,a0
  38.     add.w    #2,d0
  39.     and.w    #ISM,d0
  40.     move.w    d0,isrd
  41.     move.b    (a0)+,__ljoy
  42.     move.b    (a0)+,__rjoy
  43. zread    rts
  44.  
  45.     dseg
  46.     public __ljoy
  47.     public __rjoy
  48.     public __bjoy
  49.  
  50. __bjoy
  51. __ljoy    dc.b    0
  52. __rjoy    dc.b    0
  53.  
  54.     bss    is,ISZ*2
  55.     bss    isct,2
  56.     bss    isrd,2
  57.     bss    iswr,2
  58.  
  59.